package com.punch.course.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.punch.common.model.SuperEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 课程班级表
 * </p>
 *
 * @author wjj
 * @since 2020-12-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("course_class")
public class CourseClass extends SuperEntity<CourseClass> {

    private static final long serialVersionUID = 1L;

    /**
     * 0-机构 1-学校
     */
    @TableField("type")
    private Integer type;

    /**
     * 班级名称
     */
    @TableField("class_name")
    private String className;

    /**
     * 计划开班日期
     */
    @TableField("plan_open_date")
    private LocalDate planOpenDate;


    /**
     * 计划课时数
     */
    @TableField("plan_course_count")
    private Integer planCourseCount;


    /**
     * 实际开班日期
     */
    @TableField("actual_open_date")
    private LocalDate actualOpenDate;

    /**
     * 报名开始时间
     */
    @TableField("sign_up_start_time")
    private LocalDateTime signUpStartTime;

    /**
     * 报名结束时间
     */
    @TableField("sign_up_end_time")
    private LocalDateTime signUpEndTime;

    /**
     * 课程id
     */
    @TableField("course_id")
    private Long courseId;


    /**
     * 教师id
     */
    @TableField("teacher_id")
    private Long teacherId;

    /**
     * 教师名称
     */
    @TableField("teacher_name")
    private String teacherName;

    /**
     * 教室id
     */
    @TableField("classroom_id")
    private Long classRoomId;

    /**
     * 教室名称
     */
    @TableField("classroom_name")
    private String classRoomName;

    /**
     * 最少上课人数
     */
    @TableField("stu_no_min")
    private Integer stuNoMin;

    /**
     * 最多上课人数
     */
    @TableField("stu_no_max")
    private Integer stuNoMax;

    /**
     * 报名人数
     */
    @TableField("sign_up_number")
    private Integer signUpNumber;

    /**
     * 上课时间
     */
    @TableField("class_time")
    private String classTime;

    /**
     * 0-待申请 1-待发布 2-待报名 3-报名中 4-已开班 5-已完成 6-拒绝
     */
    @TableField("class_status")
    private Integer classStatus;

    /**
     * 课程结算状态 0-未结算 1-正在结算 2-结算完成
     */
    @TableField("settlement_status")
    private Integer settlementStatus;

    /**
     * 地区id
     */
    @TableField("area_id")
    private Integer areaId;

    /**
     * 当前地区id与父地区id
     */
    @TableField("all_area_ids")
    private String allAreaId;
    /**
     * 地区名称
     */
    @TableField("area_name")
    private String areaName;

    /**
     * 创建用户id
     */
    @TableField("create_id")
    private Long createId;

    /**
     * 创建者姓名
     */
    @TableField("create_name")
    private String createName;

    /**
     * 学校id type为1的时候与create_id一致
     */
    @TableField("school_id")
    private Long schoolId;

    /**
     * 学校名称 type为1的时候与create_name一致
     */
    @TableField("school_name")
    private String schoolName;


    @Override
    protected Serializable pkVal() {
        return null;
    }

}
